"0x00000010" 指令引用的 "0x00000010" 内存。该内存不能为 "read",一般是啥原因?

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:13:23
"0x00000010" 指令引用的 "0x00000010" 内存。该内存不能为 "read",一般是啥原因?

如果是"0x00000000"一般是空指针引用。
如果是不定的比较大的值一般就是已释放释放指针引用。
但这个"0x00000010"一般是啥问题?看汇编似乎是栈破坏,函数返回地址被修改了。
由于发生问题时栈已经破坏,也就没法看到调用历史。

win2000 0x00000000 ~ 0x0000FFFF 64K用于是NULL指针分配的(不可访问),
0x0010000~0x7FFEFFFF 21473252576字节是 WIN32进程私有段.(可访问),
0x7FFF0000~0x7FFFFFFF 64K,用于环指针分配(WIN32不可访问)
0x80000000~0xFFFFFFFF, 2G,操作系统(WIN32不可访问)

所以 WIN32看到 0x00000000 ~ 0x0000FFFF ,0x80000000~0xFFFFFFFF, 一定是非法指针

有些问题栈捕获不到,单步调试看看,如果多线程,那么打印出来。

可能是由于hookapi改写了代码段

读取了不该读的地址